//该文件用于下创建Vuex中最为核心的store
// 引入vue
import Vue from 'vue'
// 引入vuex
import Vuex from 'vuex'
// 应用vuex插件
Vue.use(Vuex)

// 准备actions-用于响应组件中的动作
const actions = {
  // jia(context, value) {
  //   // console.log('actions被调用了', context, value);
  //   context.commit('JIA', value)
  // },
  // jian(context, value) {
  //   // console.log('actions被调用了', context, value);
  //   context.commit('JIAN', value)
  // },
  jianOdd(context, value) {
    // console.log('actions被调用了', context, value);
    if (context.state.sum % 2) {
      context.commit('JIANODD', value)
    }
  },
  jianWait(context, value) {
    // console.log('actions被调用了', context, value);
    setTimeout(() => {
      context.commit('JIANWAIT', value)
    }, 500)
  }
}
// 准备mutations-用于操作数据
const mutations = {
  JIA(state, value) {
    // console.log('mutations被调用了', state, value);
    state.sum += value
  },
  JIAN(state, value) {
    // console.log('mutations被调用了', state, value);
    state.sum -= value
  },
  JIANODD(state, value) {
    // console.log('mutations被调用了', state, value);
    state.sum += value
  },
  JIANWAIT(state, value) {
    // console.log('mutations被调用了', state, value);
    state.sum += value
  },
}
// 准备state-用于存储数据
const state = {
  sum: 0,
  school: 'pujiang',
  subject: '前端'
}
// 准备getters-用于将state中的数据进行加工
const getters = {
  bigSum(state) {
    return state.sum * 10
  }
}

// 创建并暴露store
export default new Vuex.Store({
  // actions: actions,
  actions,
  mutations,
  state,
  getters
})


